package model

import (
	"mall/api/inventory"
	"mall/api/pay"
)

// 购物车快照，用于已删除商品加载
type CartRemark struct {
	// 商品名称
	ProdName string `json:"prod_name"`
	// 规格名称
	SkuName string `json:"sku_name"`
	// 货架单价
	Price uint64 `json:"price"`
	// 单位
	Unit string `json:"unit"`
	// 首图
	Pic string `json:"pic"`
	// 重量
	Weight uint64 `json:"weight"`
	// 门店名称
	StoreName string `json:"store_name"`
	// 商品属性
	Nature uint8 `json:"nature"`
}

// 优惠信息快照(参考营销构建)
type DiscountRemark struct {
	// 优惠类型 em_offer_type枚举:
	//   - discount~折扣(单品折扣/整单折扣/会员折扣)
	//   - limit~特价(单品特价/整单特价、秒杀)
	//   - cut~减价(单品减价/满减)
	//   - quota_cut~满减(多品组合)
	// required
	OfferType string `protobuf:"bytes,2,opt,name=offer_type,json=offerType,proto3" json:"offer_type,omitempty"`
	// 优惠项目类型 em_offer_item_type枚举:
	//   - card~会员卡
	//   - activity~活动
	//   - coupon~优惠券/码
	//   - member_points~会员积分
	//   - thirdparty~第三方
	// required
	OfferItemType string `protobuf:"bytes,3,opt,name=offer_item_type,json=offerItemType,proto3" json:"offer_item_type,omitempty"`
	// 优惠项目id:card/member_points=member_id;activity=activity_id;coupon=coupon_id
	// required
	OfferItemId int64 `protobuf:"varint,4,opt,name=offer_item_id,json=offerItemId,proto3" json:"offer_item_id,omitempty"`
	// 优惠项目描述
	Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
}

// 支付快照
type PayRemark struct {
	// 支付方式
	PayType pay.PayType `json:"pay_type"`
	// 支付方式名称
	PayTypeName string `json:"pay_type_name"`
	// 原始支付金额（单位：分）
	OriginAmount uint64 `json:"origin_amount,omitempty"`
	// 商户优惠金额
	MerchantDiscount uint64 `json:"merchant_discount,omitempty"`
	// 平台优惠金额
	PlatformDiscount uint64 `json:"platform_discount,omitempty"`
	// 用户实付金额
	UserPayed uint64 `json:"user_payed,omitempty"`
	// 商家实收金额
	Receive uint64 `json:"receive,omitempty"`
	// 支付时间(YYYY-mm-dd HH:MM:SS)
	PayTime string `json:"pay_time,omitempty"`
}

// 配送信息快照
type InventoryRemark struct {
	// 仓库推送信息
	inventory.InventoryOrderUpdatePayload_DeliverMemo
	// 仓库名称
	WarehouseName string `json:"warehouse_name"`
	// 履约单号
	OrderNumber string `json:"order_number"`
	// 同步时间戳
	SyncTime int64
}

// 退款申请快照
type RefundApplyRemark struct {
	// 退款申请备注
	Memo string `json:"memo"`
	// 整单取消原因
	Reason string `json:"reason,omitempty"`
}

// 退款推送快照
type RefundPaymentRemark struct {
	PayRemark
	// 退款单号
	RefundOrderNumber string `json:"refund_order_number"`
	// 失败原因
	FailedReason string `json:"failed_reason"`
}

// 审核操作大字段
type ReviewRemark struct {
	// 员工ID
	EmpID uint32 `json:"emp_id"`
	// 员工姓名快照
	Operator string `json:"operator"`
	// 拒绝原因
	Reason string `json:"reason"`
}

// 退款仓库快照
type WarehouseRemark struct {
	// 仓库地址信息
	inventory.AddressInfo
	// 仓库推送信息
	inventory.InventoryOrderUpdatePayload_RefundMemo
	// 仓库名称
	Name string `json:"name"`
	// 退货履约单号
	InventoryOrderNum string `json:"inventory_order_num"`
	// 同步时间戳
	SyncTime int64
}
